package com.selen.service;

import com.github.pagehelper.PageInfo;
import com.selen.dto.PageDTO;
import com.selen.dto.PermissionInsertDTO;
import com.selen.dto.PermissionUpdateDTO;
import com.selen.entities.Permission;

import java.util.List;

/**
 * @author Selen
 */
public interface PermissionService {
    /**
     * 添加一条部门记录
     *
     * @param dto 部门添加实体
     * @return 影响条目数
     */
    int insert(PermissionInsertDTO dto);


    /**
     * 查询一条部门记录
     *
     * @param id 部门表主键
     * @return 一条部门记录
     */
    Permission selectById(Long id);

    /**
     * 按主键修改一条部门记录
     *
     * @param dto 部门修改实体
     * @return 影响条目数
     */
    int updateById(PermissionUpdateDTO dto);

    /**
     * 按主键逻辑删除一条记录
     *
     * @param id 部门表主键
     * @return 影响条目数
     */
    int logicDeleteById(Long id);

    /**
     * 全查所有部门记录
     *
     * @return 全部部门记录
     */
    List<Permission> list();

    /**
     * 按主键逻辑批删一条记录
     *
     * @param ids 部门表主键列表
     * @return 影响条目数
     */
    int logicDeleteByIds(List<Long> ids);

    /**
     * 分页查询数据
     *
     * @param dto 分页实体类
     * @return 分页数据
     */
    PageInfo<Permission> page(PageDTO dto);
}
